package com.sunspring.zdcall.service;

import com.sunspring.zdcall.bo.SourceMaxTime;
import com.sunspring.zdcall.entity.ZdBaseCheckroom;
import com.sunspring.zdcall.entity.ZdQueueInfo;

import java.util.Date;
import java.util.List;

/**
 * @Author WuLei
 * @Date 2018/11/27  16:54
 */
public interface QueueService {

    /**
     * 批量新增队列信息
     * @param list List<ZdBaseCheckroom>
     */
    void addBatch(List<ZdQueueInfo> list);


    /**
     * 从登记系统查询登记信息
     * @param date 标志位时间
     * @return List<QueueView>
     */
    List<ZdQueueInfo> getQueueFromApi(Date date);


    void changeCheckStatus(String inspectId, int state);

    /**
     * 完成就诊
     * @param inspectId
     * @param time
     */
    void finishVisit(String inspectId, Date time);

    /**
     * 查询最大时间
     * @return
     */
    List<SourceMaxTime> findMaxCheckInTime();

    /**
     * 查看当天队列
     * @return List<ZdQueueInfo>
     */
    List<ZdQueueInfo> findTodayQueue();

    /**
     * 修改队列信息
     */
    void updatePrintStatus(String inspectId, int status);

    /**
     * 查询最大队列号
     * @param checkId
     * @return
     */
    String findMaxQueueId(String checkId, Date time);

    /**
     * 新增队列信息
     * @param queueInfo queueInfo
     * @return 受影响行数
     */
    int add(ZdQueueInfo queueInfo);


    /**
     * 检验新增患者信息的科室和检查室是否注册
     * @param queueInfo ZdQueueInfo
     */
    ZdBaseCheckroom deptCheck(ZdQueueInfo queueInfo);

}
